概述
Android 原生桌面不太符合我们的使用习惯,因此,本文就一步步的去定制我们熟悉的Launcher交互风格。
源码请参考GitHub
去掉首屏搜索栏
1 | //FeatureFlags.java |
去掉抽屉式
Launcher模式是把所有的应用显示在抽屉式的AllAppsView里面,主页上显示的是可以从所有应用页面拖动出来的收藏应用,现在我们做一下改造,把所有的应用都显示在主页。
可以分为一下步骤:
- 增加一个全局变量来控制是否显示抽屉。
- 增加一个default_workspace_5x5_no_all_apps.xml来作为主页图标布局。
- 将所有应用图标显示在WorkSpace。
- 屏蔽上拉显示抽屉操作。
增加全局变量
1 | //FeatureFlags.java |
增加一套布局
1 | <?xml version="1.0" encoding="utf-8"?> |
修改 device_profiles.xml
1 | //launcher:defaultLayoutId="@xml/default_workspace_5x5" > |
添加默认 AppWidget 需要 <uses-permission android:name="android.permission.BIND_APPWIDGET"/>
权限,而且需要系统签名。
所有应用添加到 WorkSpace
LauncherProvider中加载数据库时添加所有应用到launcher.db。
1 | //LauncherProvider.java |
记录一下默认布局中写入数据库的app,后面遍历所有app添加到数据库时去掉这些app,防止重复添加。
1 | //LauncherProvider.java |
1 | //AddWorkspaceItemsTask.java |
1 | //BaseModelUpdateTask.java |
安装或者更新应用时添加到WorkSpace中:
1 | //PackageUpdatedTask.java |
1 | //PackageManagerHelper.java |
这里添加的应用都是从添加了数据库中的默认应用后的下一页开始的,后期还需要再改造。
去掉上滑呼出所有应用
1 | public TouchController[] createTouchControllers() { |
修改字体大小
1 | <display-option |